package service.majorunit;

import java.util.List;

import util.returnvo.MajorunitReturnVO;
import util.returnvo.MajorunitSearchListReturnVO;
import vo.MajorunitVO;

public interface MajorunitService {
	
	/**
	 * MajorunitVO를 MajorunitReturnVO로 변환
	 * @param param
	 * @return
	 */
	public MajorunitReturnVO getMajorunitReturnVO(MajorunitVO param) throws Exception;
	
	/**
	 * MajorunitVO를 MajorunitReturnVO로 변환
	 * @param param
	 * @return
	 */
	public List<MajorunitReturnVO> getMajorunitReturnVOList(List<MajorunitVO> param) throws Exception;
	
	/**
	 * 팝업 사용 검색 리스트
	 * @param search
	 * @param page
	 * @return
	 */
	public MajorunitSearchListReturnVO getPopupSearchedUnit(String search, String page) throws Exception;
	
	/**
	 * 종합 학과유닛 가져오기
	 * MajorunitReturnVO로 변환시킬 때는 majorunit_no를 넣어주고 
	 * MajorunitManager.convertUnitToString()이용해서 majorunit_name을 넣고
	 * @param majorunit_no
	 * @return 학과유닛(로고 포함)+리뷰수+종목별평균+추천평균+남녀비율평균
	 */
	public MajorunitReturnVO getOneUnitReturn(int majorunit_no) throws Exception;
	
	/**
	 * 검색값으로 자동완성 리스트 만들기.
	 * 검색값을 띄어쓰기를 기준으로 배열이나 리스트로 쪼개 dao를 호출.
	 * 받은 리스트를 문자열리스트로 변환.
	 * MajorunitManager.convertUnitToString()이용
	 * @param search 띄어쓰기 포함 검색값
	 * @return
	 */
	public List<String> autoCompleteMajorunitList(String search) throws Exception;
	
	/**
	 * 검색값으로 수정을 위한 리스트 만들기
	 * @param search
	 * @return
	 */
	public List<MajorunitVO> getMajorunitEditList(String search) throws Exception;

	/**
	 * 학과유닛 등록
	 * @param param
	 */
	public void registerMajorunit(MajorunitVO param) throws Exception;
	
	/**
	 * 학과유닛 수정
	 * @param param
	 */
	public void updateMajorunit(MajorunitVO param) throws Exception;
	
	/**
	 * 학과유닛 삭제
	 * @param majorunit_no
	 */
	public void deleteMajorunit(int majorunit_no) throws Exception;
	
	/**
	 * 해당 대학 학과유닛 삭제
	 * @param majorunit_no
	 */
	public void deleteMajorunitInUniv(int univ_no) throws Exception;
	
	/**
	 * 특정 학교의 학과 목록
	 * @param univ_no
	 */
	public List<MajorunitVO> getMajorunits(int univ_no) throws Exception;
}
